<html>
<head>
<title>installation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<div align ="center">
[ <a href="manual.html">Manual</a>
| Installation
| <a href="changes.html">Changes</a>
| <a href="faq.html">FAQ</a>
| <a href="mail_list.html">Contact</a>
] </div>

        <p>
        <b>Basic Installation Instructions</b></p>
          <p>The following is
            a quick-start guide for installing SLEPc. For further details,
            the user is referred to the SLEPc Users Manual.</p>
          <p>Previously to
            the installation of SLEPc, the system must have an appropriate version
            of PETSc installed (see the <a href="https://petsc.org/release/install/" target="_blank">PETSc installation documentation</a> for details). Check the <a href="changes.html">Changes</a>
            section for a list of SLEPc versions and their corresponding PETSc
            versions. </p>
        <p>
	The installation process for SLEPc is very similar to PETSc, with two main stages: configuration and compilation. SLEPc configuration is much simpler because most of the configuration information is taken from PETSc, including compiler options and scalar type (real or complex). Several configurations can coexist in the same directory tree, being selected by different values of <code>PETSC_ARCH</code>, so that one can, for instance, have a SLEPc compiled with real scalars and another one with complex scalars.</p>

        <p>
	The main steps for the installation are:</p>
      <ol>
        <li style="padding-top: 0.5em">
          Unbundle the distribution file <strong>slepc-3.16.0.tar.gz</strong> with a usual
    command such as <code>tar xzf slepc-3.16.0.tar.gz</code>.
    This will create a directory and unpack the software there.<br>
          </li>
        <li style="padding-top: 0.5em">Set the environment variable <code>SLEPC_DIR</code>
    to the full path of the SLEPc home directory, for example,<br>
    <div style="padding-top: 0.4em; padding-bottom: 0.4em;">
      <code style="margin-left: 1cm">export SLEPC_DIR=/home/username/slepc-3.16.0</code><br>
    </div>
    In addition to this variable, <code>PETSC_DIR</code>
    and <code>PETSC_ARCH</code> must also be set appropriately.<br>
          </li>
        <li style="padding-top: 0.5em">
          In the SLEPc directory, execute<br>
    <div style="padding-top: 0.4em; padding-bottom: 0.4em;">
      <code style="margin-left: 1cm">./configure</code><br>
    </div>
    Note that in order to enable external packages (see below), this command must be
    run with appropriate options. To see all available options use
    <code>./configure --help</code><br>
          </li>
        <li style="padding-top: 0.5em">
          In the SLEPc home directory, type<br>
    <div style="padding-top: 0.4em; padding-bottom: 0em;">
      <code style="margin-left: 1cm">make</code>
    </div>
          </li>
        <li style="padding-top: 0.5em">
          Optionally, if an installation directory has been specified during configuration (with option <code>--prefix</code> in step 3 above), then type<br>
    <div style="padding-top: 0.4em; padding-bottom: 0.4em;">
      <code style="margin-left: 1cm">make install</code>
    </div>
    This is useful for building as a regular user and then copying the libraries and include files to the system directories as root.
          </li>
        <li style="padding-top: 0.5em">If the installation went smoothly, then try running some test examples with <br>
    <div style="padding-top: 0.4em; padding-bottom: 0.4em;">
      <code style="margin-left: 1cm">make check</code><br>
    </div>
    Examine the output for any obvious errors or problems.<br>
          </li>
      </ol>
        <p>&nbsp;</p>

        <p><b>Optional Software</b></p>
        <p>SLEPc provides an interface to several software packages.
          These should be installed before installing SLEPc. These packages are
          not developed, maintained, or supported by the SLEPc team; we merely
          provide an interface to them. To integrate one of these libraries in
          SLEPc:</p>
      <ul>
        <li>
          First install the external package following its instructions. Make sure
          you use the same compilers and MPI that you plan to use with PETSc/SLEPc.
        </li>
        <li>
          Enable
            the utilization of the external software from SLEPc by adding specific command-line parameters when executing <code>configure</code>. For example, to use ARPACK, specify the following options (with the appropriate paths):<br>
    <div style="padding-top: 0.4em; padding-bottom: 0.4em;">
      <code style="margin-left: 1cm">./configure --with-arpack-dir=/usr/software/ARPACK --with-arpack-lib=-lparpack,-larpack</code><br>
    </div>
        </li>
        <li>
            Build the SLEPc libraries.
        </li>
      </ul>
        <p>SLEPc currently interfaces to the following libraries:</p>
      <ul>
        <li>
          <a href="https://www.caam.rice.edu/software/ARPACK" target="_blank">ARPACK</a>
            (Implicitly Restarted Arnoldi/Lanczos solver).
        </li>
        <li>
          <a href="http://www.cs.wm.edu/~andreas/software" target="_blank">PRIMME</a>
            (PReconditioned Iterative MultiMethod Eigensolver).
        </li>
        <li>
          <a href="https://sdm.lbl.gov/%7Ekewu/trlan.html" target="_blank">TRLAN</a>
            (Dynamic Thick Restart Lanczos solver).
        </li>
        <li>
          <a href="https://github.com/lobpcg/blopex" target="_blank">BLOPEX</a>
            (Block Locally Optimal Preconditioned Eigenvalue Xolvers).
        </li>
      </ul>
        <p>Additional information
          about these packages can be found in the SLEPc Users Manual.
        </p>
        <p>&nbsp;</p>
</body>
</html>
